#include "progromlistview.h"
#include "ui_progromlistview.h"
#include <QListWidget>
#include <QStandardItemModel>
#include <QStandardItem>
#include <QDebug>
#include <QModelIndex>
#include <QMessageBox>

ProgromListView::ProgromListView(int styleId,QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ProgromListView)
{
    ui->setupUi(this);
    initialDisplayStyle(styleId);

    connect(ui->tableView, SIGNAL(clicked(const QModelIndex &)), this, SLOT(onTableClicked(const QModelIndex &)));

    ui->tableView->setShowGrid(true);
    ui->tableView->setGridStyle(Qt::DotLine);
    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

    model = new QStandardItemModel();
    QStringList labels = QObject::trUtf8("程序文件列表").simplified().split(",");
    model->setHorizontalHeaderLabels(labels);

}

void ProgromListView::initialDisplayStyle(int styleId)
{
//    switch (styleId) {
//    case 1:
//        ui->tableView->setGeometry(10,20,420,320);
//        ui->back_Btn->setGeometry(360,355,70,40);
//        break;
//    default:
//        break;
//    }
}

void ProgromListView::setProgramFileList(QStringList fileList)
{
    nameList=fileList;
    QStandardItem* item = 0;
    for(int i = 0;i < fileList.length();i++){
       item = new QStandardItem(QString("%1").arg(fileList.at(i)));
       model->setItem(i,0,item);
       //item->setTextAlignment(Qt::AlignCenter);
    }
    ui->tableView->setModel(model);
    ui->tableView->show();
}

void ProgromListView::setSelectFile(QString fileNameIn)
{
    for(int i=0;i<nameList.size();i++)
    {
        if(fileNameIn==nameList[i])
        {
            ui->tableView->selectRow(i);
        }
    }

}

ProgromListView::~ProgromListView()
{
    delete ui;
}

void ProgromListView::onTableClicked(const QModelIndex &index)
{
//    if (index.isValid()) {
//        QString cellText = index.data().toString();
//        qDebug()<< "str:" << cellText;
//        emit getSelectFileName(cellText);
//    }

//    this->hide();
}

void ProgromListView::on_back_Btn_clicked()
{
    this->hide();
}

void ProgromListView::on_button_select_clicked()
{

    int row= ui->tableView->currentIndex().row();
    if(row>=0)
    {
        QAbstractItemModel *model = ui->tableView->model ();
        QModelIndex index = model->index(row,0);//选中行第一列的内容
        QString cellText = index.data().toString();
        qDebug()<< "str:" << cellText;
        emit getSelectFileName(cellText);
        this->hide();
    }
    else
    {
        QMessageBox::information(this, "提示", "没有选中行！", QMessageBox::Yes );
    }


}
